package com.littleII.enumber;

/**
 * 软件类别的枚举类。暂定类型为：浏览工具|共享软件
 * @author littleII
 *
 */
public enum Type{
//	网络软件
//	浏览工具,浏览辅助,网络优化,邮件处理,网页制作,FTP/Telnet,下载工具,搜索工具,检测监控,新闻阅读,服务器类,站长工具,邮件群发
	Internet(1, "网络软件"),
//	系统工具
	System(2,"系统工具"),
//	 应用软件
	App(3,"应用软件"),
//	 联络聊天
	Chats(4,"联络聊天"),
//	 图形图像
	Graphics(5,"图形图像"),
//	 多媒体类
	Multimedia(6,"多媒体类"),
//	 行业软件
	Industry(7,"行业软件"),
//	 游戏娱乐
	Game(8,"游戏娱乐"),
//	 编程开发
	Programming(9,"编程开发"),
//	 杀毒安全
	Security(10,"杀毒安全"),
//	 教育教学
	Education(11, "教育教学");

	private int id;	//一级分类
	private String label;	//短标签
	private static Type[] allType = Type.class.getEnumConstants();	//所有的类别

	/**
	 * @return the id
	 */
	public int getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @return the label
	 */
	public String getLabel() {
		return label;
	}

	/**
	 * @param label the label to set
	 */
	public void setLabel(String label) {
		this.label = label;
	}

	/**
	 * 构造方法
	 * @param id	一级分类
	 * @param label 短标签
	 */
	private Type(int id, String label) {
		this.id = id;
		this.label = label;
	}
	/**
	 * 重写toString方法
	 */
	@Override
	public String toString() {
		return label;
	}
	public static Type fromInt(int id){
		for (Type t : allType) {
			if(id == t.getId()){
				return t;
			}
		}
		return null;
	}
	public static Type byLabel(String label){
		for (Type t : allType) {
			if(label.startsWith(t.getLabel())){
				return t;
			}
		}
		return null;
	}
}
